The present disclosure relates generally to profiling an executable file. The present disclosure more specifically relates to controlling the profiling mode for the executable at runtime.
Various levels of abstraction often separate source code written by a programmer and the actual instructions executed by a computing device. For example, a programmer may write source code for a computer program in a high-level programming language, such as C++ or C. The source code may then be transformed by a compiler into assembler code. Likewise, an assembler may then convert the assembler code into an object file having assembly code with offsets. A linker may then merge one or more object files or libraries into an executable file. During linking, references to external symbols may be resolved and finalized addresses to functions and variables may be generated.